
// 标准头文件引用
#include <stdio.h>
#include <fcntl.h>
#include <unistd.h> // close read

// 头文件
#include "./内存工具.hpp"

// 函数定义
namespace neiCunGongJv_AL {

  pid_t get_PID(const char *包名) {
    pid_t PID; // 返回值
    // 变量声明
    char 执行的命令[5 + 1 + 0xAA];
    FILE *fd;
    int 读取结果;
    // 开始执行
    sprintf(执行的命令, "pidof %s", 包名);
    fd = popen(执行的命令, "r");
    if(fd == nullptr) {
      PID = 0;
      goto _执行pidof命令失败;
    }
    读取结果 = fscanf(fd, "%d", &PID); // 已经获取到PID
    if(读取结果 < 1) {
      PID = 0;
      goto _获取命令结果失败;
    }
    // 结束
_获取命令结果失败:
    pclose(fd);
_执行pidof命令失败:
    return (PID);
  }

}
